package uk.co.caprica.vlcj.oop;

import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.logger.Logger;
import uk.co.caprica.vlcj.player.MediaPlayerFactory;

/**
 * Extension of the standard {@link MediaPlayerFactory} to provide instances of
 * the {@link OutOfProcessMediaPlayer}.
 */
public class OutOfProcessMediaPlayerFactory extends MediaPlayerFactory {

    public OutOfProcessMediaPlayerFactory() {
        super();
    }

    public OutOfProcessMediaPlayerFactory(LibVlc libvlc) {
        super(libvlc);
    }

    public OutOfProcessMediaPlayerFactory(LibVlc libvlc, String... libvlcArgs) {
        super(libvlc, libvlcArgs);
    }

    public OutOfProcessMediaPlayerFactory(String... libvlcArgs) {
        super(libvlcArgs);
    }

    /**
     * Create a new remote media player.
     * 
     * @return media player instance
     */
    public OutOfProcessMediaPlayer newOutOfProcessMediaPlayer() {
        Logger.debug("newOutOfProcessMediaPlayer()");
        return new DefaultOutOfProcessMediaPlayer(libvlc, instance);
    }
}
